package main;

import maquina.gestor.flujo.GestorIO;
import maquina.interfaz.io.Teclado;
import maquina.interfaz.usuario.InterfazUsuario;
import maquina.modelol.elector.LogicaVotacion;
import maquina.modelol.elector.ModalidadMultiple;
import maquina.modelol.elector.Repositorio;
import maquina.modelol.elector.Repositorio.ExcepcionCargaCandidatos;

public class Maquina {

	private static final String[] CATEGORIAS = {"presidentes.txt", "gobernadores.txt"};
	
	public static void main(String[] args){
		
		if (args.length > 0) {
		
			InterfazUsuario interfazUsuario = new InterfazUsuario();
			
			try {
				
				Repositorio repo = new Repositorio(CATEGORIAS);
	
				repo.getCategoria("gobernadores").setModalidad(new ModalidadMultiple(3));
				
				//repo.getCategoria("presidentes").setModalidad(new ModalidadMultiple(2));
				
				LogicaVotacion votacion = new LogicaVotacion(repo.getCategorias());
				
				GestorIO gestorIO = new GestorIO(votacion, interfazUsuario, Integer.parseInt(args[0]));
				
				new Teclado(gestorIO).setListener(interfazUsuario.getPanel());
					
			} catch (ExcepcionCargaCandidatos e) {
			
				interfazUsuario.presentarFallaCarga();
				
				System.out.println("Falla de carga Maquina Votar");
			}
		
		} else {
			
			System.out.println("Parametro faltante.");
			
		}
		
	}
}
